/*
Theme Name: LA Business Network
Theme URI: https://www.labusinessnetwork.com
Author: LA Business Network
Description: Custom theme for LA Business Network — a networking community for Latin and Asian professionals. Mobile-first, fast, and fully editable in the WordPress block editor.
Version: 1.5.2
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: labn
*/

/* ============ TOKENS ============ */
:root{
  --ink:#111111;
  --ink-soft:#4a4a4a;
  --muted:#6b6b6b;
  --paper:#ffffff;
  --sand:#b3a184;
  --sand-dark:#8f7d5e;
  --mist:#f6f4f0;
  --line:#e3ded4;
  --radius:14px;
  --wrap:1160px;
  --pad:24px;
  --header-h:92px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* ============ RESET ============ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--sand-dark);}
h1,h2,h3,h4,h5,h6{font-weight:800;letter-spacing:-.021em;line-height:1.15;margin:0 0 .5em;}
h1{font-size:clamp(34px,5vw,56px);}
h2{font-size:clamp(27px,3.6vw,40px);}
h3{font-size:clamp(20px,2.2vw,24px);}
h4{font-size:19px;}
p{margin:0 0 1.15em;}
ul,ol{margin:0 0 1.15em;padding-left:1.3em;}
li{margin-bottom:.4em;}
blockquote{margin:0 0 1.2em;padding:20px 24px;background:var(--mist);border-left:3px solid var(--sand);border-radius:0 var(--radius) var(--radius) 0;}
blockquote p:last-child{margin-bottom:0;}
blockquote cite{display:block;margin-top:12px;font-size:14px;font-style:normal;font-weight:700;color:var(--sand-dark);}
hr,.wp-block-separator{border:none;border-top:1px solid var(--line);margin:48px 0;}
code{background:var(--mist);padding:2px 6px;border-radius:5px;font-size:.9em;}
:focus-visible{outline:3px solid var(--sand);outline-offset:2px;}

/* ============ LAYOUT ============ */
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.site-main{min-height:50vh;}
.entry-content{padding:0 0 64px;}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:8px;top:8px;z-index:9999;background:#fff;padding:10px 16px;border-radius:8px;}

/* ============ HEADER ============ */
.site-header{position:sticky;top:0;z-index:500;background:rgba(255,255,255,.97);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:var(--header-h);}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}
.brand img{max-height:66px;width:auto;}
.brand-text{display:block;line-height:1;}
.brand-text .bt-main{display:block;font-size:26px;font-weight:800;letter-spacing:.04em;color:var(--sand);}
.brand-text .bt-sub{display:block;font-size:8.5px;letter-spacing:.44em;font-weight:700;color:var(--ink);margin-top:3px;}

.nav-toggle{display:none;background:none;border:none;padding:10px;cursor:pointer;line-height:0;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.25s;border-radius:2px;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px;}
.primary-nav li{margin:0;position:relative;}
.primary-nav a{display:block;padding:9px 13px;font-size:15px;font-weight:500;text-decoration:none;border-radius:8px;white-space:nowrap;transition:.18s;}
.primary-nav a:hover{background:var(--mist);color:var(--sand-dark);}
.primary-nav .current-menu-item > a,.primary-nav .current_page_item > a{color:var(--sand-dark);font-weight:700;}
/* sub menus */
.primary-nav ul ul{position:absolute;top:100%;left:0;min-width:210px;flex-direction:column;align-items:stretch;gap:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(20,16,8,.12);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;}
.primary-nav li:hover > ul,.primary-nav li:focus-within > ul{opacity:1;visibility:visible;transform:translateY(0);}
.header-cta{flex-shrink:0;}
.header-cta .btn{padding:10px 22px;font-size:14.5px;}

/* ============ BUTTONS ============ */
.btn,.wp-block-button__link{display:inline-block;padding:13px 30px;border-radius:999px;font-weight:600;font-size:15.5px;text-decoration:none;border:1.6px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;transition:.2s;text-align:center;}
.btn:hover,.wp-block-button__link:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn-solid,.wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--ink);color:#fff;}
.btn-solid:hover,.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{background:var(--sand-dark);border-color:var(--sand-dark);color:#fff;}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink);}

/* ============ BLOCK EDITOR SUPPORT ============ */
.entry-content > *{max-width:var(--wrap);margin-left:auto;margin-right:auto;padding-left:var(--pad);padding-right:var(--pad);}
.entry-content > .alignfull{max-width:none;padding-left:0;padding-right:0;}
.entry-content > .alignwide{max-width:1340px;}
.wp-block-columns{display:flex;gap:30px;margin-bottom:30px;flex-wrap:wrap;}
.wp-block-column{flex:1 1 240px;min-width:0;}
.wp-block-cover{position:relative;display:flex;align-items:center;padding:80px 0;background:var(--ink);color:#fff;overflow:hidden;}
.wp-block-cover .wp-block-cover__inner-container{position:relative;z-index:3;max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);width:100%;}
.wp-block-cover h1,.wp-block-cover h2,.wp-block-cover h3,.wp-block-cover p{color:#fff;}
/* background photo */
.wp-block-cover img.wp-block-cover__image-background,
.wp-block-cover video.wp-block-cover__video-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1;margin:0;max-width:none;border-radius:0;}
/* colour overlay sits above the photo, below the text */
.wp-block-cover__background{position:absolute;inset:0;z-index:2;}
.wp-block-cover .has-background-dim{opacity:.5;}
.wp-block-cover .has-background-dim-0{opacity:0;}
.wp-block-cover .has-background-dim-10{opacity:.1;}
.wp-block-cover .has-background-dim-20{opacity:.2;}
.wp-block-cover .has-background-dim-30{opacity:.3;}
.wp-block-cover .has-background-dim-40{opacity:.4;}
.wp-block-cover .has-background-dim-50{opacity:.5;}
.wp-block-cover .has-background-dim-60{opacity:.6;}
.wp-block-cover .has-background-dim-70{opacity:.7;}
.wp-block-cover .has-background-dim-80{opacity:.8;}
.wp-block-cover .has-background-dim-90{opacity:.9;}
.wp-block-cover .has-background-dim-100{opacity:1;}
.wp-block-buttons{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:1.2em;}
.wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:1.5em;}
.wp-block-gallery figure{margin:0;}
.wp-block-gallery img{border-radius:10px;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;}
.wp-block-image img{border-radius:10px;}
.wp-block-social-links{list-style:none;display:flex;gap:12px;padding:0;margin:24px 0;}
.wp-block-social-links li{margin:0;}
.has-black-background-color{background-color:var(--ink)!important;}
.has-white-color{color:#fff!important;}
.has-text-align-center{text-align:center;}
.has-text-align-right{text-align:right;}

/* ============ PAGE HEADER ============ */
.page-hero{padding:52px 0 8px;}
.page-hero h1{margin-bottom:6px;}
.page-hero .eyebrow{display:inline-block;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--sand-dark);font-weight:700;margin-bottom:10px;}
body.home .page-hero{display:none;}

/* ============ CARDS / POSTS ============ */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;padding-bottom:64px;}
.post-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.22s;}
.post-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(20,16,8,.09);border-color:var(--sand);}
.post-card .thumb{aspect-ratio:16/9;background:var(--mist);overflow:hidden;}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;}
.post-card .body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:9px;flex:1;}
.post-card h2{font-size:20px;margin:0;}
.post-card h2 a{text-decoration:none;}
.post-card .meta{font-size:13px;color:var(--muted);letter-spacing:.02em;}
.post-card .excerpt{font-size:15px;color:var(--ink-soft);margin:0;}
.post-card .more{margin-top:auto;font-size:14.5px;font-weight:700;color:var(--sand-dark);text-decoration:none;}

.entry-meta{font-size:14px;color:var(--muted);margin-bottom:26px;}

/* ============ FOOTER ============ */
.site-footer{background:var(--ink);color:#b9b4aa;padding:56px 0 32px;margin-top:40px;}
.site-footer a{color:#e6e2da;text-decoration:none;}
.site-footer a:hover{color:var(--sand);}
.footer-top{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:flex-start;}
.footer-brand .bt-sub{color:#b9b4aa;}
.footer-brand .brand img{max-height:64px;width:auto;}
.footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:20px;padding:0;margin:0;font-size:14.5px;}
.footer-nav li{margin:0;}
.footer-social{display:flex;gap:12px;margin-top:16px;}
.footer-social a{width:38px;height:38px;border:1.5px solid #4a463f;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.04em;}
.footer-social a:hover{background:var(--sand);border-color:var(--sand);color:#fff;}
.footer-bottom{margin-top:36px;padding-top:22px;border-top:1px solid #2b2924;font-size:13px;color:#7c776e;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}

/* ============ PAGINATION ============ */
.pagination{display:flex;gap:8px;justify-content:center;padding:0 0 64px;flex-wrap:wrap;}
.pagination .page-numbers{padding:9px 15px;border:1px solid var(--line);border-radius:9px;text-decoration:none;font-size:15px;}
.pagination .current{background:var(--ink);color:#fff;border-color:var(--ink);}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  body{font-size:16.5px;}
  :root{--pad:18px;--header-h:78px;}
  .brand img{max-height:54px;}
  .nav-toggle{display:block;}
  .primary-nav{position:fixed;inset:var(--header-h) 0 auto 0;background:#fff;border-bottom:1px solid var(--line);max-height:calc(100vh - var(--header-h));overflow-y:auto;transform:translateY(-140%);transition:transform .28s ease;box-shadow:0 20px 40px rgba(0,0,0,.10);}
  .primary-nav.open{transform:translateY(0);}
  .primary-nav ul{flex-direction:column;align-items:stretch;gap:0;padding:10px var(--pad) 22px;}
  .primary-nav a{padding:14px 6px;font-size:17px;border-bottom:1px solid var(--line);border-radius:0;min-height:44px;}
  .primary-nav ul ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;padding:0 0 0 16px;min-width:0;}
  .header-cta{display:none;}
  .wp-block-columns{gap:20px;}
  .wp-block-column{flex-basis:100%!important;}
  .wp-block-cover{padding:60px 0;}
  .wp-block-cover h1{font-size:32px;}
  .footer-top{flex-direction:column;}
}
@media (max-width:520px){
  .wp-block-gallery{grid-template-columns:repeat(2,1fr);}
  .btn,.wp-block-button__link{width:100%;}
  .wp-block-buttons{flex-direction:column;}
}

/* ============ GALLERY PHOTO ACTIONS ============ */
/* Download + native share on each gallery photo. Buttons sit inside the figure
   so they scroll with the image and never overlap the next one. */
.wp-block-gallery figure.has-labn-photo-actions{position:relative;overflow:hidden;border-radius:10px;}
.wp-block-gallery figure.has-labn-photo-actions img{transition:transform .35s ease;}
.wp-block-gallery figure.has-labn-photo-actions:hover img{transform:scale(1.03);}

.labn-photo-actions{
  position:absolute;right:8px;bottom:8px;display:flex;gap:8px;z-index:2;
  opacity:1;transition:opacity .2s ease;
}
/* Core styles every direct div child of a gallery figure as a column, which
   stacked these buttons on top of each other. Out-specify it. */
.wp-block-gallery.has-nested-images figure.wp-block-image > .labn-photo-actions{
  flex-direction:row;flex-grow:0;margin:0;
}
.labn-photo-action{
  width:44px;height:44px;min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;
  border:none;border-radius:999px;cursor:pointer;padding:0;
  background:rgba(17,17,17,.62);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .18s ease,transform .18s ease;
}
.labn-photo-action svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.labn-photo-action:hover,.labn-photo-action:focus-visible{background:var(--sand-dark);transform:translateY(-1px);}
.labn-photo-action:focus-visible{outline:3px solid #fff;outline-offset:2px;}
.labn-photo-action.is-busy{background:var(--sand);}

/* On mouse-driven screens the controls stay out of the way until you hover.
   On touch there is no hover, so they are always visible. */
@media (hover:hover) and (pointer:fine){
  .labn-photo-actions{opacity:0;}
  figure.has-labn-photo-actions:hover .labn-photo-actions,
  figure.has-labn-photo-actions:focus-within .labn-photo-actions{opacity:1;}
}

@media (prefers-reduced-motion:reduce){
  .wp-block-gallery figure.has-labn-photo-actions:hover img{transform:none;}
  .labn-photo-action{transition:none;}
}

/* ============ EVENT RECAP CARDS ============ */
.labn-recaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;margin-top:32px;margin-bottom:8px;list-style:none;}
.labn-recap{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .25s ease,transform .25s ease;}
.labn-recap:hover{box-shadow:0 18px 40px rgba(0,0,0,.10);transform:translateY(-3px);}
.labn-recap__media{display:block;aspect-ratio:3/2;background:var(--mist);overflow:hidden;}
.labn-recap__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.labn-recap:hover .labn-recap__media img{transform:scale(1.04);}
.labn-recap__media--empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;letter-spacing:.08em;text-transform:uppercase;}
.labn-recap__body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.labn-recap__date{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--sand-dark);font-weight:600;}
.labn-recap__title{font-size:21px;line-height:1.25;margin:0;}
.labn-recap__title a{color:var(--ink);text-decoration:none;}
.labn-recap__title a:hover{color:var(--sand-dark);}
.labn-recap__excerpt{font-size:15.5px;color:var(--ink-soft);margin:0;}
.labn-recap__more{margin-top:auto;padding-top:10px;font-weight:600;font-size:15px;color:var(--sand-dark);text-decoration:none;}
.labn-recap__more:hover{text-decoration:underline;}

/* Full-set download callout inside a recap post */
.labn-download-all{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;
  background:var(--mist);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;margin-top:28px;margin-bottom:28px;
}
.labn-download-all p{margin:0;flex:1 1 260px;font-size:15.5px;color:var(--ink-soft);}
.labn-download-all strong{color:var(--ink);display:block;font-size:17px;margin-bottom:2px;}
