/*
Theme Name: чути
Description: Editorial block theme незалежного українського порталу про слух.
Version: 0.2.1
Requires at least: 6.6
Requires PHP: 8.3
Text Domain: chuty
*/
/* Brand tokens match theme.json. No remote fonts or imports. */
:root {
  --chuty-paper:#f7fafb;
  --chuty-ink:#102d40;
  --chuty-teal:#087c80;
  --chuty-brand-teal:#159b9e;
  --chuty-cyan:#a1dbe8;
  --chuty-muted:#506776;
  --chuty-line:#dbe6eb;
  --chuty-ui:Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --chuty-display:Literata,Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
html {
  scroll-padding-top:24px
}
body {
  font-family:var(--chuty-ui);
  margin:0
}
*,*:before,*:after {
  box-sizing:border-box
}
.wp-site-blocks {
  padding:0
}
body .wp-site-blocks>header,body .wp-site-blocks>main,body .wp-site-blocks>footer {
  margin-block-start:0
}
.chuty-main {
  margin:0!important
}
body .chuty-main>* {
  margin-block-start:0
}
.chuty-shell {
  width:min(1240px,calc(100% - 64px));
  margin-inline:auto
}
a,button,input,summary {
  touch-action:manipulation
}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible {
  outline:3px solid var(--chuty-teal);
  outline-offset:5px
}
main:focus {
  outline:none
}
.chuty-skip {
  position:absolute;
  top:12px;
  left:24px;
  z-index:10;
  transform:translateY(-180%);
  background:#fff;
  padding:12px 20px;
  border-radius:8px
}
.chuty-skip:focus {
  transform:translateY(0)
}
.chuty-visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.chuty-header {
  display:flex;
  align-items:center;
  gap:36px;
  min-height:108px
}
.chuty-wordmark {
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
  min-height:44px
}
.chuty-wordmark img {
  display:block;
  width:142px;
  height:auto
}
.chuty-nav {
  display:flex;
  justify-content:center;
  gap:28px;
  flex:1
}
.chuty-nav a,.chuty-header-search {
  color:var(--chuty-ink);
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  min-height:44px;
  display:flex;
  align-items:center
}
.chuty-nav a:hover {
  text-decoration:underline;
  text-underline-offset:6px
}
.chuty-header-search {
  justify-content:center;
  width:46px;
  border:1px solid var(--chuty-line);
  border-radius:50%
}
.chuty-header-search:hover {
  background:#e6f2f4
}
/* Replace --chuty-hero-image with another same-origin licensed image. */
.chuty-hero {
  --chuty-hero-image:url("/wp-content/themes/chuty/assets/landscape.jpg");
  min-height:530px;
  position:relative;
  overflow:hidden;
  border-radius:22px;
  display:flex;
  align-items:center;
  background:linear-gradient(90deg,#f4faf9 0%,#f4faf9f5 24%,#f4faf9c9 43%,#f4faf940 64%,#f4faf900 85%),var(--chuty-hero-image) center 54%/cover;
  color:var(--chuty-ink)
}
.chuty-hero-content {
  position:relative;
  z-index:1;
  padding:58px 52px;
  max-width:760px
}
.chuty-eyebrow {
  font-size:11px;
  font-weight:700;
  letter-spacing:1.6px;
  line-height:1.6;
  margin:0 0 20px;
  color:var(--chuty-teal)
}
.chuty-hero h1 {
  font-family:var(--chuty-display);
  font-size:clamp(38px,3.8vw,54px);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-1.7px;
  margin:0 0 23px;
  color:var(--chuty-ink)
}
.chuty-hero h1 span {
  color:var(--chuty-teal)
}
.chuty-hero-content>p:not(.chuty-eyebrow) {
  font-size:17px;
  line-height:1.8;
  margin:0 0 27px;
  max-width:425px;
  color:#294757
}
.chuty-button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  background:var(--chuty-teal);
  color:#fff;
  padding:14px 22px;
  border-radius:9px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  min-height:48px
}
.chuty-button:hover,.chuty-search button:hover {
  background:#05666a
}
.chuty-hero-note {
  position:absolute;
  right:24px;
  bottom:22px;
  font-size:12px;
  background:#102d40e6;
  color:#fff;
  border-radius:6px;
  padding:10px 15px
}
.chuty-search-wrap {
  padding:30px 0 0
}
.chuty-search {
  max-width:920px;
  margin:auto;
  scroll-margin-top:24px
}
.chuty-search-field {
  display:flex;
  align-items:center;
  background:#fff;
  border:1px solid #c3d5dd;
  border-radius:12px;
  padding:8px 8px 8px 24px;
  gap:14px;
  box-shadow:0 8px 24px #102d4007
}
.chuty-search-field>svg {
  color:var(--chuty-muted);
  flex-shrink:0
}
.chuty-search input {
  flex:1;
  min-width:0;
  width:100%;
  border:0;
  border-radius:6px;
  font:inherit;
  font-size:16px;
  color:var(--chuty-ink);
  background:#fff;
  padding:14px 0
}
.chuty-search input::placeholder {
  color:var(--chuty-muted);
  opacity:1
}
.chuty-search button {
  border:0;
  border-radius:8px;
  background:var(--chuty-teal);
  color:#fff;
  padding:14px 28px;
  font:600 14px/1.5 var(--chuty-ui);
  cursor:pointer;
  min-height:48px;
  white-space:nowrap
}
.chuty-search button span {
  margin-left:18px
}
.chuty-search>p {
  font-size:12px;
  color:var(--chuty-muted);
  margin:12px 0 0;
  text-align:center
}
.chuty-topics {
  padding:56px 0 60px
}
.chuty-section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:26px
}
.chuty-section-heading h2 {
  font-family:var(--chuty-display);
  font-weight:600;
  font-size:32px;
  line-height:1.25;
  letter-spacing:-.7px;
  margin:0
}
.chuty-section-heading>p,.chuty-section-heading>a {
  font-size:13px;
  color:var(--chuty-muted);
  margin:0
}
.chuty-section-heading>a {
  min-height:44px;
  display:flex;
  align-items:center;
  gap:12px;
  text-underline-offset:5px
}
.chuty-topic-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px
}
.chuty-topic {
  display:flex;
  flex-direction:column;
  align-items:start;
  position:relative;
  border:1px solid var(--chuty-line);
  border-radius:12px;
  padding:24px 20px 18px;
  background:#fff;
  color:var(--chuty-ink);
  text-decoration:none;
  scroll-margin-top:24px
}
.chuty-topic:hover {
  border-color:var(--chuty-brand-teal);
  background:#edf8f8
}
.chuty-topic-icon {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  background:#eaf6f7;
  border-radius:12px;
  color:var(--chuty-teal);
  margin-bottom:20px
}
.chuty-topic:nth-child(2n) .chuty-topic-icon {
  background:#edf2f9;
  color:#365778
}
.chuty-topic h3 {
  font:650 17px/1.3 var(--chuty-ui);
  margin:0 0 10px
}
.chuty-topic p {
  font-size:12px;
  line-height:1.7;
  color:var(--chuty-muted);
  margin:0 0 16px
}
.chuty-topic-link {
  font-size:20px;
  color:var(--chuty-teal);
  margin-top:auto;
  align-self:end
}
.chuty-editorial {
  padding:0 0 60px
}
.chuty-empty-note {
  font-size:13px;
  color:var(--chuty-muted);
  margin:0 0 24px
}
.chuty-preview-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.chuty-preview,.chuty-article {
  background:#fff;
  border:1px solid var(--chuty-line);
  border-radius:14px;
  overflow:hidden
}
.chuty-preview-art {
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  background:var(--chuty-preview-image,linear-gradient(135deg,#d8edef,#a7d4d8));
  background-size:cover;
  background-position:center
}
.chuty-preview-art:before,.chuty-preview-art:after {
  content:'';
  position:absolute;
  border:1px solid #517b8a55;
  border-radius:45% 55% 65% 35%;
  width:270px;
  height:270px;
  transform:translate(125px,65px) rotate(30deg)
}
.chuty-preview-art:after {
  width:190px;
  height:190px;
  transform:translate(-120px,-75px) rotate(-20deg);
  background:#ffffff40
}
.chuty-preview-art span {
  font:500 52px/1 var(--chuty-display);
  color:#275962;
  z-index:1
}
.art-rights {
  background:var(--chuty-preview-image,linear-gradient(135deg,#e5edf5,#b7cbdc))
}
.art-rights span {
  color:#365778
}
.art-tech {
  background:var(--chuty-preview-image,linear-gradient(135deg,#e6eee6,#c7d8bd))
}
.art-tech span {
  color:#435e48
}
.chuty-preview-body {
  padding:26px
}
.chuty-preview-body .chuty-eyebrow {
  font-size:10px;
  letter-spacing:1.1px;
  margin-bottom:12px
}
.chuty-preview h3,.chuty-article h3 {
  font:650 22px/1.35 var(--chuty-ui);
  margin:0 0 12px
}
.chuty-preview-body>p:last-child {
  font-size:14px;
  color:var(--chuty-muted);
  margin:0;
  line-height:1.8
}
.chuty-articles .wp-block-post-template {
  gap:24px;
  margin:0;
  padding:0
}
.chuty-article {
  padding:26px;
  height:100%
}
.chuty-article a {
  color:var(--chuty-ink);
  text-underline-offset:4px
}
.chuty-article .wp-block-post-date {
  font-size:12px;
  color:var(--chuty-muted)
}
.chuty-article .wp-block-post-excerpt {
  font-size:15px
}
.chuty-callout {
  display:flex;
  align-items:center;
  gap:28px;
  background:#eaf3f5;
  padding:30px 36px;
  border-radius:14px
}
.chuty-callout img {
  flex-shrink:0
}
.chuty-callout h2 {
  font:600 25px/1.3 var(--chuty-display);
  margin:0 0 9px
}
.chuty-callout p {
  font-size:14px;
  color:var(--chuty-muted);
  margin:0;
  max-width:650px
}
.chuty-callout>a {
  margin-left:auto;
  white-space:nowrap;
  font-size:14px;
  color:var(--chuty-ink);
  text-underline-offset:5px;
  padding:12px;
  min-height:44px
}
body .chuty-main .chuty-callout {
  margin-bottom:64px
}
body .wp-site-blocks>footer {
  background:var(--chuty-ink);
  color:#fff
}
.chuty-footer {
  padding:48px 0 24px;
  display:grid;
  grid-template-columns:1.6fr 1fr 1.2fr 1.4fr;
  gap:32px
}
.chuty-footer h2 {
  font:650 14px/1.5 var(--chuty-ui);
  margin:0 0 15px;
  color:#fff
}
.chuty-footer p {
  font-size:13px;
  line-height:1.8;
  color:#c3d6df;
  margin:14px 0 0;
  max-width:300px
}
.chuty-footer nav>a,.chuty-footer-info>a {
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:13px;
  color:#dfedf3;
  text-decoration:none
}
.chuty-footer a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
.chuty-footer a:focus-visible,.chuty-footer summary:focus-visible {
  outline-color:#a1dbe8
}
.chuty-footer-policies {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  border-top:1px solid #426071;
  padding-top:20px
}
.chuty-footer summary {
  font-size:12px;
  color:#c3d6df;
  min-height:44px;
  cursor:pointer;
  padding:10px 0
}
.chuty-footer details p {
  max-width:none;
  margin-top:4px
}
.chuty-footer-bottom {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid #426071;
  padding-top:22px;
  font-size:12px;
  color:#c3d6df
}
body:not(.home) main {
  min-height:45vh;
  padding-block:40px
}
body:not(.home) main h1 {
  font-family:var(--chuty-display)
}
.wp-block-search input,.wp-block-search button {
  min-height:48px;
  font-family:var(--chuty-ui)
}
.wp-block-search button {
  background:var(--chuty-teal);
  color:#fff;
  border:0;
  border-radius:6px
}
@media(max-width:1100px) {
  .chuty-header {
    gap:20px
  }
  .chuty-nav {
    gap:16px
  }
  .chuty-nav a {
    font-size:13px
  }
  .chuty-topic-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .chuty-topic {
    padding:24px
  }
  .chuty-topic h3 {
    font-size:19px
  }
  .chuty-topic p {
    font-size:14px
  }
  .chuty-hero-content {
    padding:44px 36px;
    max-width:580px
  }
  .chuty-hero {
    background-image:linear-gradient(90deg,#f4faf9fa,#f4faf9e6 40%,#f4faf950 80%),var(--chuty-hero-image)
  }
}
@media(max-width:900px) {
  .chuty-header {
    flex-wrap:wrap;
    padding:20px 0;
    gap:10px;
    min-height:0
  }
  .chuty-header-search {
    margin-left:auto
  }
  .chuty-nav {
    order:3;
    flex-basis:100%;
    justify-content:start;
    flex-wrap:wrap;
    gap:0 24px
  }
  .chuty-nav a {
    font-size:14px
  }
  .chuty-footer {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .chuty-hero h1 {
    font-size:46px
  }
  .chuty-preview-grid,.chuty-articles .wp-block-post-template {
    grid-template-columns:1fr!important
  }
  .chuty-preview {
    display:grid;
    grid-template-columns:1fr 1.4fr
  }
  .chuty-preview-art {
    height:100%;
    min-height:220px
  }
  .chuty-callout {
    flex-wrap:wrap
  }
  .chuty-callout>div {
    flex:1;
    min-width:220px
  }
  .chuty-callout>a {
    margin-left:92px
  }
  .chuty-footer-policies {
    grid-template-columns:1fr;
    gap:4px
  }
}
@media(max-width:540px) {
  .chuty-shell {
    width:calc(100% - 32px)
  }
  .chuty-wordmark img {
    width:128px
  }
  .chuty-header {
    padding:16px 0
  }
  .chuty-nav {
    gap:0 20px
  }
  .chuty-nav a {
    font-size:13px
  }
  .chuty-hero {
    min-height:570px;
    align-items:start;
    border-radius:16px;
    background-image:linear-gradient(180deg,#f4faf9 0%,#f4faf9fa 42%,#f4faf990 67%,#f4faf900 100%),var(--chuty-hero-image);
    background-position:center,65% bottom
  }
  .chuty-hero-content {
    padding:30px 24px 100px;
    max-width:100%
  }
  .chuty-button {
    gap:16px;
    padding:14px 16px;
    font-size:13px;
    max-width:100%
  }
  .chuty-hero h1 {
    font-size:38px;
    letter-spacing:-1.1px
  }
  .chuty-hero-content>p:not(.chuty-eyebrow) {
    font-size:15px;
    line-height:1.8
  }
  .chuty-eyebrow {
    font-size:10px;
    letter-spacing:1px
  }
  .chuty-hero-note {
    right:16px;
    left:16px;
    bottom:16px;
    text-align:center;
    font-size:11px
  }
  .chuty-search-wrap {
    padding-top:20px
  }
  .chuty-search-field {
    padding:6px 6px 6px 12px;
    gap:8px
  }
  .chuty-search-field>svg {
    width:18px
  }
  .chuty-search input {
    font-size:14px
  }
  .chuty-search button {
    padding:12px 14px
  }
  .chuty-search button span {
    display:none
  }
  .chuty-search>p {
    font-size:11px;
    text-align:left
  }
  .chuty-topics {
    padding:38px 0 42px
  }
  .chuty-section-heading {
    align-items:start;
    gap:12px;
    flex-direction:column;
    margin-bottom:20px
  }
  .chuty-section-heading h2 {
    font-size:28px
  }
  .chuty-topic-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px
  }
  .chuty-topic {
    padding:18px 14px 12px
  }
  .chuty-topic-icon {
    width:44px;
    height:44px;
    margin-bottom:16px
  }
  .chuty-topic h3 {
    font-size:16px
  }
  .chuty-topic p {
    font-size:12px;
    margin-bottom:10px
  }
  .chuty-preview {
    display:block
  }
  .chuty-preview-art {
    height:170px;
    min-height:0
  }
  .chuty-preview-body {
    padding:22px
  }
  .chuty-preview h3 {
    font-size:21px
  }
  .chuty-editorial {
    padding-bottom:40px
  }
  .chuty-callout {
    padding:24px;
    gap:16px
  }
  .chuty-callout img {
    width:44px;
    height:auto
  }
  .chuty-callout>div {
    min-width:0;
    flex-basis:100%
  }
  .chuty-callout h2 {
    font-size:24px
  }
  .chuty-callout>a {
    margin-left:0;
    padding-left:0
  }
  body .chuty-main .chuty-callout {
    margin-bottom:40px
  }
  .chuty-footer {
    padding-top:36px;
    gap:28px 20px
  }
  .chuty-footer-brand,.chuty-footer-info {
    grid-column:1/-1
  }
  .chuty-footer p {
    max-width:none
  }
  .chuty-footer-bottom {
    flex-direction:column;
    gap:8px
  }
  body:not(.home) main {
    padding-inline:16px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}
@media(forced-colors:active) {
  .chuty-hero {
    background:Canvas;
    color:CanvasText;
    border:1px solid CanvasText
  }
  .chuty-hero h1,.chuty-hero h1 span,.chuty-hero-content>p:not(.chuty-eyebrow) {
    color:CanvasText
  }
  .chuty-button,.chuty-search button,.chuty-topic,.chuty-preview,.chuty-header-search {
    border:1px solid ButtonText
  }
  .chuty-hero-note {
    background:Canvas;
    color:CanvasText
  }
}

/* Public Directory v0.1: same brand, no script dependencies. */
.chuty-directory { overflow-wrap:anywhere; }
.chuty-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:13px; color:var(--chuty-muted); }
.chuty-breadcrumb a,.chuty-directory-back { display:inline-flex; align-items:center; min-height:44px; color:var(--chuty-teal); text-underline-offset:4px; }
.chuty-directory-intro { padding:32px 0; max-width:790px; }
.chuty-directory-intro h1 { font-size:clamp(34px,4vw,54px); line-height:1.2; margin:0 0 20px; letter-spacing:-1px; }
.chuty-directory p { line-height:1.8; }
.chuty-directory-intro>p:last-child { font-size:18px; color:var(--chuty-muted); }
.chuty-directory h2 { font:600 26px/1.3 var(--chuty-display); margin:0 0 16px; }
.chuty-directory-filters,.chuty-directory-card,.chuty-directory-details>section { background:#fff; border:1px solid var(--chuty-line); padding:28px; border-radius:16px; }
.chuty-directory-filters>p,.chuty-directory-meta { color:var(--chuty-muted); font-size:14px; }
.chuty-directory-filters form { display:flex; flex-wrap:wrap; gap:20px; align-items:end; }
.chuty-directory-filters form>div { flex:1; min-width:min(240px,100%); }
.chuty-directory-filters label { display:block; font-weight:600; margin-bottom:10px; }
.chuty-directory-filters select { width:100%; min-height:48px; padding:12px; font:inherit; border:1px solid #c3d5dd; border-radius:8px; background:#f7fafb; color:var(--chuty-muted); opacity:1; }
.chuty-directory-filters button { border:0; font:600 14px/1.5 var(--chuty-ui); background:#eaf3f5; color:var(--chuty-muted); cursor:not-allowed; }
select:focus-visible { outline:3px solid var(--chuty-teal); outline-offset:5px; }
.chuty-directory-empty { display:flex; gap:28px; background:#eaf3f5; border-radius:18px; padding:36px; margin:32px 0 48px; }
.chuty-directory-empty>div { max-width:760px; }
.chuty-directory-symbol { font-size:36px; color:var(--chuty-teal); }
.chuty-directory-examples { margin-bottom:32px; }
.chuty-directory-card { max-width:600px; }
.chuty-directory-card h3 { font:650 24px/1.35 var(--chuty-ui); margin:0 0 16px; }
.chuty-directory-card .chuty-button { flex-wrap:wrap; }
.chuty-directory-notice { background:#eaf3f5; border-left:4px solid var(--chuty-teal); border-radius:12px; padding:28px; margin-bottom:28px; }
.chuty-directory-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.chuty-directory-details>section:first-child { grid-row:span 2; }
.chuty-directory-details dl { margin:0; }
.chuty-directory-details dt { font-weight:650; margin-top:20px; }
.chuty-directory-details dd { margin:8px 0 24px; color:var(--chuty-muted); }
.chuty-directory-back { margin-top:28px; }
@media(max-width:600px) {
  body:not(.home) main.chuty-directory { padding-inline:0; }
  .chuty-directory-filters,.chuty-directory-card,.chuty-directory-details>section,.chuty-directory-notice { padding:22px; }
  .chuty-directory-empty { padding:24px; flex-direction:column; gap:12px; }
  .chuty-directory-details { grid-template-columns:1fr; }
  .chuty-directory-filters form>div,.chuty-directory-filters button { flex-basis:100%; }
  .chuty-directory-intro>p:last-child { font-size:16px; }
}
.chuty-directory-empty .chuty-eyebrow { color:#05666a; }

.chuty-programs .chuty-directory-card { max-width:none; margin:28px 0; }
.chuty-programs .chuty-directory-filters button { cursor:pointer; background:var(--chuty-teal); color:#fff; }
.chuty-programs .chuty-directory-filters input { box-sizing:border-box; width:100%; min-height:48px; padding:12px; border:1px solid #c3d5dd; border-radius:8px; font:inherit; }
.chuty-programs .chuty-directory-filters form>div { min-width:0; flex-basis:240px; }
.chuty-program-text { white-space:pre-wrap; }

.chuty-editorial-page { overflow-wrap:anywhere; }
.chuty-article-body { max-width:72ch; line-height:1.75; }
.chuty-editorial-page nav a { display:inline-block; margin-right:1rem; }
.chuty-editorial-page .chuty-preview-grid { margin-block:2rem; }

/* Institution contacts: readable stacked details, without nested cards. */
.chuty-institution-contacts { margin-top:28px; padding-top:24px; border-top:1px solid var(--chuty-line); }
.chuty-institution-contacts dl { margin:0; }
.chuty-institution-contacts dl>div { margin-bottom:20px; }
.chuty-institution-contacts dt { font-weight:650; }
.chuty-institution-contacts dd { margin:4px 0 0; line-height:1.7; }
.chuty-contact-list { list-style:none; margin:0; padding:0; }
.chuty-contact-list a,.chuty-institution-contacts dd>a { display:inline-block; padding-block:8px; text-underline-offset:4px; }
.chuty-institution-contacts h3 { font:650 18px/1.5 var(--chuty-ui); margin:24px 0 8px; }
.chuty-institution-checked { margin-bottom:0; color:var(--chuty-muted); }

/* Institution profiles: local media and simple stacked sections, usable without JS. */
.chuty-institution-photo { margin: 0 0 1.5rem; }
.chuty-institution-photo img { display: block; width: 100%; max-height: 30rem; object-fit: contain; height: auto; border-radius: .5rem; }
.chuty-institution-photo figcaption { margin-top: .5rem; font-size: .875rem; overflow-wrap: anywhere; }
.chuty-institution-services { margin-block: 1.5rem; overflow-wrap: anywhere; }
.chuty-institution-services li { margin-block: .75rem; }
.chuty-map-link { display: block; margin-top: .5rem; }

/* Authenticated Institution saved-draft preview only. */
.chuty-draft-preview-banner { background: #edf6f5; border: 1px solid #bed7d3; padding: 12px 16px; margin-bottom: 24px; border-radius: 8px; }
.chuty-draft-preview-banner p { margin: 0 0 6px; font-weight: 600; }

/* Single Institution uses the whole CHUTY shell, independently of directory cards. */
.chuty-institution-profile { padding-block:32px 56px; }
.chuty-institution-profile>h1 { margin:0 0 12px; font:600 clamp(32px,4vw,52px)/1.2 var(--chuty-display); letter-spacing:-.025em; }
.chuty-institution-profile>p { margin:0 0 32px; color:var(--chuty-muted); }
.chuty-institution-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:clamp(32px,5vw,72px); border-top:1px solid var(--chuty-line); padding-top:32px; }
.chuty-institution-layout>* { min-width:0; }
.chuty-institution-main { max-width:72ch; }
.chuty-institution-layout .chuty-institution-contacts { margin:0; padding:0; border:0; }
.chuty-institution-content { line-height:1.8; }
.chuty-institution-content>:first-child { margin-top:0; }
.chuty-institution-content>:last-child { margin-bottom:0; }
.chuty-institution-content img,.chuty-institution-content video,.chuty-institution-content iframe { max-width:100%; }
.chuty-institution-content .alignwide,.chuty-institution-content .alignfull { width:auto; max-width:100%; margin-inline:0; }
.chuty-institution-content pre,.chuty-institution-content .wp-block-table { max-width:100%; overflow:auto; }
.chuty-institution-photo { margin-top:24px; }
.chuty-institution-main .chuty-institution-services { margin:32px 0 0; padding-top:24px; border-top:1px solid var(--chuty-line); }
@media (max-width:900px) {
  .chuty-institution-layout { grid-template-columns:minmax(0,1fr); gap:32px; }
  .chuty-institution-main { max-width:none; }
  .chuty-institution-layout .chuty-institution-contacts { padding-top:24px; border-top:1px solid var(--chuty-line); }
}

/* Shared guidance closes the full-width Institution profile. */
.chuty-institution-before-visit { margin-top:clamp(32px,5vw,56px); padding-top:clamp(24px,4vw,36px); border-top:1px solid var(--chuty-line); }
.chuty-institution-before-visit h2 { margin:0 0 20px; font:600 clamp(24px,3vw,32px)/1.3 var(--chuty-display); }
.chuty-institution-before-visit>div { max-width:75ch; line-height:1.8; overflow-wrap:anywhere; }
.chuty-institution-before-visit p { margin:0 0 1em; }
.chuty-institution-before-visit p:last-child { margin-bottom:0; }

/* Institution photo and first-party feedback */
.chuty-institution-photo { margin:0 0 28px; }
.chuty-institution-photo img { height:auto; max-height:none; aspect-ratio:auto; object-fit:cover; object-position:center; }
.chuty-institution-photo figcaption { color:var(--chuty-muted); font-size:13px; }
:is(.chuty-institution-report,.chuty-photo-contribution) { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:36px; padding:clamp(20px,4vw,32px); background:var(--chuty-surface,#f1f7f6); border:1px solid var(--chuty-line); border-radius:16px; }
:is(.chuty-institution-report,.chuty-photo-contribution) h2 { margin:0 0 12px; font-size:clamp(20px,2.5vw,26px); line-height:1.4; }
:is(.chuty-institution-report,.chuty-photo-contribution) p { margin:0; }
:is(.chuty-institution-report,.chuty-photo-contribution) .chuty-button { flex-shrink:0; text-align:center; white-space:normal; }
:is(.chuty-institution-report,.chuty-photo-contribution) button:disabled { opacity:.65; cursor:not-allowed; }
:is(.chuty-institution-report,.chuty-photo-contribution)>div:last-child p { font-size:14px; margin-top:10px; max-width:32ch; }
.chuty-report-page { padding-top:40px; padding-bottom:64px; overflow-wrap:anywhere; }
.chuty-report-form { max-width:680px; display:grid; gap:12px; margin-top:28px; }
.chuty-report-form label { font-weight:600; margin-top:12px; }
.chuty-report-form input,.chuty-report-form select,.chuty-report-form textarea { box-sizing:border-box; width:100%; min-width:0; padding:12px; font:inherit; color:inherit; background:white; border:1px solid var(--chuty-line); border-radius:6px; }
.chuty-report-form textarea { resize:vertical; }
.chuty-report-form p { margin:0; font-size:14px; }
.chuty-report-form .chuty-button { justify-self:start; margin-top:16px; }
.chuty-report-trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.chuty-report-error { border-left:3px solid var(--chuty-teal); padding:16px; }
@media(max-width:900px) { :is(.chuty-institution-report,.chuty-photo-contribution) { flex-direction:column; align-items:flex-start; } }

/* Native no-JS photo contribution form. */
.chuty-photo-contribution { margin-top: 1rem; }
.chuty-report-form input[type=file] { max-width:100%; min-width:0; width:100%; box-sizing:border-box; }
.chuty-report-form .chuty-photo-check { display:flex; align-items:flex-start; gap:.65rem; font-weight:400; }
.chuty-report-form .chuty-photo-check input { width:auto; flex:0 0 auto; margin-top:.3rem; }
.chuty-report-form fieldset { min-width:0; margin:0; padding:1rem; border:1px solid var(--chuty-line,#d8d8d0); }
