/* One set of optical sizes for shared icons across public and admin pages.
   These two dimensions intentionally override the older per-page icon sizes.
   Preserve each SVG viewBox: wide and narrow symbols are contained, never stretched. */
.portal-site svg.portal-icon,.portal-admin-body svg.portal-icon{
  width:var(--portal-icon-size,20px)!important;
  height:var(--portal-icon-size,20px)!important;
  display:inline-block;flex:0 0 auto;vertical-align:-.125em;
  fill:currentColor;stroke:none;overflow:visible;
}
.portal-icon-button,.portal-dialog-close{display:inline-flex;align-items:center;justify-content:center}
.portal-menu-toggle,.portal-admin-menu{align-items:center;justify-content:center}
.portal-button .portal-icon,.portal-btn .portal-icon,.portal-icon-button .portal-icon,
.portal-menu-toggle .portal-icon,.portal-admin-menu .portal-icon,.portal-dialog-close .portal-icon{
  --portal-icon-size:20px;margin:0;
}
.portal-text-link .portal-icon,.portal-breadcrumbs .portal-icon,
.portal-dropdown summary .portal-icon,.portal-line .portal-icon,
.portal-chip .portal-icon,.reference-approved .portal-icon,
.ref-ticker-inner .portal-icon,.reference-kicker .portal-icon,
.reference-story-meta .portal-icon,.ref-candidate-place .portal-icon,
.ref-results-disclaimer .portal-icon,.poll-fine-print .portal-icon{
  --portal-icon-size:14px;
}
.portal-contact-row>.portal-icon,.portal-owner-phone .portal-icon,
.reference-notice-row>.portal-icon,.reference-topic-links a>.portal-icon,
.ref-notice-board .portal-notice-item>.portal-icon,.ref-event-board .portal-event>.portal-icon,
.portal-tabs .portal-icon,.ref-poll-tabs .portal-icon{
  --portal-icon-size:18px;
}
.reference-list-arrow .portal-icon,.portal-category>.portal-icon,
.reference-update-preview>.portal-icon,.reference-notice-row>.portal-icon:last-child,
.reference-topic-links a>.portal-icon:last-child,.reference-event-preview>.portal-icon:last-child,
.ref-poll-actions>a>.portal-icon:last-child,.ref-section-heading>.portal-text-link .portal-icon{
  --portal-icon-size:14px;
}
.reference-header-search .portal-icon,.ref-directory-search label>.portal-icon,
.reference-news-search>.portal-icon{--portal-icon-size:18px}
.portal-category-icon{display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:12px}
.portal-category-icon .portal-icon{--portal-icon-size:32px}
.portal-category>.portal-icon{padding:6px;box-sizing:content-box}
.portal-empty>.portal-icon,.reference-small-empty>.portal-icon,.ref-small-empty>.portal-icon,
.portal-service>.portal-icon,.ref-home .portal-service>.portal-icon,
.portal-feature-tile>.portal-icon,.reference-topic-icon>.portal-icon,
.reference-notice-icon>.portal-icon,.reference-event-preview>.portal-icon,
.ref-poll-steps article>.portal-icon,.ref-commitment-topics>a>.portal-icon{
  --portal-icon-size:30px;
}
.reference-section-heading h2>.portal-icon,.reference-section-heading h3>.portal-icon,
.reference-news-information h2>.portal-icon,.reference-video-card h2>.portal-icon,
.ref-unofficial-notice>.portal-icon{--portal-icon-size:24px}
.reference-owner-contact-card>.portal-icon,.portal-owner-mini>.portal-icon,
.ref-election-card>.portal-icon,.ref-poll-callout>.portal-icon,.ref-poll-band>.portal-icon,
.ref-poll-inactive>.portal-icon,.ref-comparison-empty>.portal-icon,
.portal-community-strip>.portal-icon,.reference-business-cta>div>.portal-icon,
.ref-submit-card>.portal-icon,.ref-tourism-strip>.portal-icon{
  --portal-icon-size:36px;
}
.portal-profile-mark>.portal-icon{--portal-icon-size:56px}
.reference-owner-placeholder>.portal-icon{--portal-icon-size:32px}
.ref-poll-promises .portal-icon,.ref-poll-actions>a>.portal-icon:first-child{--portal-icon-size:26px}
.ref-candidate-photo>.portal-icon{--portal-icon-size:36px}
.ref-candidate-placeholder .ref-candidate-photo>.portal-icon{--portal-icon-size:30px}
.portal-map-marker>.portal-icon,.reference-video-empty>.portal-icon{--portal-icon-size:28px}
.reference-topic-art>.portal-icon,.ref-ad-stripe>.portal-icon{--portal-icon-size:64px}
.reference-newsroom-art>.portal-icon{--portal-icon-size:96px}
.portal-admin-link>svg,.portal-admin-account a>svg{--portal-icon-size:18px}
.portal-admin-search>svg,.portal-admin-quick-menu summary>svg{--portal-icon-size:18px}
.dashboard-metric-icon,.dashboard-metrics-5 .dashboard-metric-icon,.dashboard-poll-metrics .dashboard-metric-icon{
  display:grid;place-items:center;width:30px;height:30px;flex:none;
}
.dashboard-metric-icon>svg{--portal-icon-size:28px}
.dashboard-heading-icon>svg,.dashboard-reminder-icon>svg{--portal-icon-size:32px}
.portal-admin-body .portal-btn-sm>svg,.portal-admin-body .portal-btn-icon>svg{--portal-icon-size:16px}

/* Readable, consistent brand actions use the same SVG as the social links. */
.portal-site a.portal-whatsapp,.portal-site a.reference-whatsapp{
  color:#fff;background:#087f45;border-color:#087f45;box-shadow:inset 0 0 0 1px #ffffff12;
}
.portal-site a.portal-whatsapp:hover,.portal-site a.reference-whatsapp:hover{
  color:#fff;background:#066737;border-color:#066737;
}
.portal-site a.portal-whatsapp .portal-icon,.portal-site a.reference-whatsapp .portal-icon{
  --portal-icon-size:21px;color:inherit;
}
.portal-site a.portal-telegram{background:#0875a3;border-color:#0875a3;color:white}
.portal-site a.portal-instagram{background:#a72469;border-color:#a72469;color:white}
.portal-social-mark{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:36px;height:36px;border-radius:50%;line-height:1;color:#fff;
}
.portal-social-mark .portal-icon{--portal-icon-size:22px;margin:0}
.portal-social-mark.brand-whatsapp{background:#25d366;color:#fff}
.portal-social-mark.brand-telegram{background:#fff;color:#26a5e4}
.portal-social-mark.brand-telegram .portal-icon{--portal-icon-size:30px}
.portal-social-mark.brand-facebook{background:#1877f2;color:white}
.portal-social-mark.brand-youtube{background:#fff;color:#ff0033}
.portal-social-mark.brand-instagram{background:radial-gradient(circle at 30% 100%,#ffd776 0%,#f56040 35%,#c13584 62%,#833ab4 100%);color:white}
.portal-social-mark.brand-custom{background:#edf3f2;color:#00584a}
.portal-social-mark.brand-custom img{width:100%;height:100%;padding:0;border-radius:50%;object-fit:contain}
.portal-socials{gap:9px;flex-wrap:wrap}
.portal-socials a{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.portal-socials a:focus-visible,.hero-social-icon-link:focus-visible{outline:3px solid #edbc61;outline-offset:3px}
.legacy-home-hero .hero-social-icon-link>.portal-social-mark{width:38px;height:38px}
.portal-business-card .portal-icon-button{width:36px;height:36px;border-radius:7px}
.portal-business-card .portal-icon-button .portal-icon{--portal-icon-size:19px}
.portal-admin-form small{overflow-wrap:anywhere}
@media(max-width:680px){
  .portal-category-icon{width:44px;height:44px;border-radius:10px}
  .portal-category-icon .portal-icon{--portal-icon-size:28px}
  .portal-category>.portal-icon{--portal-icon-size:12px;padding:5px}
  .portal-socials a{width:38px;height:38px}
  .legacy-home-hero .hero-social-icon-link>.portal-social-mark{width:32px;height:32px}
  .portal-business-card .portal-card-footer>.portal-actions{gap:7px}
  .portal-business-card .portal-icon-button{width:36px;height:36px}
}
@media(max-width:370px){
  .portal-category-icon{width:36px;height:40px}
  .portal-category-icon .portal-icon{--portal-icon-size:25px}
  .portal-business-card .portal-card-footer>.portal-actions{justify-content:flex-start}
}
@media(pointer:coarse){.portal-icon-button,.portal-menu-toggle,.portal-dialog-close{min-width:40px;min-height:40px}}

/* The village Instagram stays within reach while browsing, including the web app. */
.portal-site .portal-instagram-floating{
  position:fixed;right:max(16px,env(safe-area-inset-right,0px));top:45%;transform:translateY(-50%);z-index:60;
  display:grid;place-items:center;width:50px;height:50px;border:2px solid #fff;border-radius:16px;
  color:#fff;background:radial-gradient(circle at 28% 105%,#ffd776 0%,#f56040 34%,#c13584 63%,#833ab4 100%);
  box-shadow:0 4px 18px #80266935;text-decoration:none;
}
.portal-site .portal-instagram-floating .portal-icon{--portal-icon-size:26px}
.portal-instagram-floating>span{
  position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);padding:9px 13px;border-radius:8px;
  background:#163e35;color:#fff;white-space:nowrap;font:600 12px/1.4 Arial,sans-serif;opacity:0;visibility:hidden;pointer-events:none;
}
.portal-instagram-floating:focus-visible{outline:3px solid #db9d32;outline-offset:4px}
.portal-instagram-floating:focus-visible>span{opacity:1;visibility:visible}
@media(hover:hover){.portal-instagram-floating:hover>span{opacity:1;visibility:visible}}
.portal-site:has([data-portal-menu][aria-expanded="true"]) .portal-instagram-floating,
.portal-site:has(dialog[open]) .portal-instagram-floating{visibility:hidden}
@media(max-width:680px){
  .portal-site .portal-instagram-floating{right:max(10px,env(safe-area-inset-right,0px));top:auto;bottom:calc(100px + env(safe-area-inset-bottom,0px));transform:none;width:44px;height:44px;border-radius:14px}
  .portal-site .portal-instagram-floating .portal-icon{--portal-icon-size:24px}
  .portal-site:has([data-app-invitation]:not([hidden])) .portal-instagram-floating{visibility:hidden}
}
@media(max-width:920px){.portal-site:has(input:focus,textarea:focus,select:focus,[contenteditable="true"]:focus) .portal-instagram-floating{visibility:hidden}}
@media(max-height:680px){.portal-site:has([data-app-invitation]:not([hidden])) .portal-instagram-floating{visibility:hidden}}
@media print{.portal-instagram-floating{display:none!important}}
