/* Specialties index — presenting concerns with filterable association tags */

body.rt-page-specialties{
  background-color:var(--page-cool-1,#eef5f7);
  background-image:linear-gradient(165deg,
    var(--page-cool-1,#eef5f7) 0%,
    var(--page-cool-2,#e7f0f3) 48%,
    var(--page-cool-3,#dfeaed) 100%);
  --rt-nav-cta-inline-size:13.5rem;
  --rt-concerns-content-gutter:clamp(1.75rem,6vw,2.25rem);
  --rt-concerns-content-gutter-end:clamp(1.75rem,6vw,2.25rem);
  --rt-concerns-rail-max:min(34rem,100%);
  /* Override services-page.css body{overflow-x:hidden} — that was clipping scaled icons */
  overflow-x:visible;
}

body.rt-page-specialties main,
body.rt-page-specialties .theoretical-approaches{
  background:transparent;
}

body.rt-page-specialties .closing-section.closing-section--compact{
  margin-top:0;
  background-color:var(--rt-hero-paper-wash-bg-index,#f6f3ec);
  background-image:var(--rt-hero-paper-wash-image-index);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
}

body.rt-page-specialties #specialtiesPageSubhead{
  max-width:min(34rem,100%);
}

body.rt-page-specialties #specialties-header{
  padding-bottom:clamp(3.5rem,7vw,4.75rem);
  padding-left:max(var(--rt-concerns-content-gutter),env(safe-area-inset-left,0px));
  padding-right:max(var(--rt-concerns-content-gutter-end),env(safe-area-inset-right,0px));
}

/* Hero — visible on load (no staggered fade-up) */
body.rt-page-specialties #specialties-header :is(
  .page-header-eyebrow,
  .page-eyebrow.page-header-eyebrow,
  hr.page-header-hed-rule,
  .page-header-hed,
  .page-headline,
  .page-header-intro,
  .page-intro,
  .page-header-sub,
  .niche-opening,
  .page-header-cta
){
  opacity:1;
  animation:none;
  transform:none;
}

body.rt-page-specialties .specialty-index-heading{
  max-width:min(var(--index-rail-max,1060px),100%);
  margin:0 auto 0.45rem;
  font-style:normal;
  color:var(--gold-paper,#d28936);
  text-align:left;
}

body.rt-page-specialties .specialty-index-intro{
  max-width:min(var(--index-rail-max,1060px),100%);
  margin:0 auto clamp(1.35rem,3vw,1.85rem);
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-lead,clamp(1.05rem,1.25vw,1.125rem));
  font-weight:400;
  line-height:1.7;
  letter-spacing:0.01em;
  color:rgba(31,39,36,0.82);
  text-align:left;
  text-wrap:pretty;
}

/* Content — shared rail aligned with hero copy */
body.rt-page-specialties .theoretical-approaches{
  padding-left:max(var(--rt-concerns-content-gutter),env(safe-area-inset-left,0px));
  padding-right:max(var(--rt-concerns-content-gutter-end),env(safe-area-inset-right,0px));
}

@media (min-width:769px){
  body.rt-page-specialties{
    --rt-concerns-content-gutter:clamp(1.85rem,3.5vw,2.5rem);
    --rt-concerns-content-gutter-end:clamp(1.85rem,3.5vw,2.5rem);
  }
}

body.rt-page-specialties .theoretical-approaches-inner{
  position:relative;
  max-width:min(1280px,100%);
  width:100%;
  margin:0 auto;
}

.specialty-keyword-bar{
  margin:0 0 clamp(1.35rem,2.8vw,2rem);
  max-width:var(--rt-concerns-rail-max);
  padding:0;
}

.specialty-keyword-lead{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.05rem,1.45vw,1.2rem);
  font-weight:500;
  font-style:italic;
  line-height:1.42;
  color:rgba(38,28,22,0.72);
  margin:0 0 0.9rem;
  text-wrap:pretty;
}

.specialty-keyword-bar .tag-filter{
  margin:0;
  padding:0;
  background:transparent;
  border:none;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.75rem;
}

.specialty-keyword-bar .tag-filter-select-wrap{
  flex:1 1 auto;
  max-width:none;
  width:100%;
  margin:0;
}

.specialty-keyword-bar .tag-filter-select{
  width:min(24rem,100%);
  font-family:'DM Sans',sans-serif;
  font-size:0.9rem;
  font-weight:300;
  letter-spacing:0.01em;
  color:rgba(38,28,22,0.58);
  background-color:rgba(255,255,255,0.7);
  border:1px solid rgba(21,77,76,0.12);
  border-radius:4px;
  padding:0.72rem 2.1rem 0.72rem 0.85rem;
  min-height:46px;
  line-height:1.45;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6L11 1.5' stroke='%23261c16' stroke-opacity='0.38' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1rem center;
  background-size:12px 8px;
  box-shadow:0 1px 0 rgba(255,255,255,0.28) inset;
}

.specialty-keyword-bar .tag-filter-select:hover{
  color:rgba(38,28,22,0.68);
  border-color:rgba(var(--gold-paper-rgb,210,137,54),0.38);
}

.specialty-keyword-bar .tag-filter-select:focus{
  outline:none;
}

.specialty-keyword-bar .tag-filter-select:focus-visible{
  outline:2px solid var(--teal-vivid,#1a6560);
  outline-offset:2px;
}

.specialty-keyword-bar .tag-filter-reset{
  align-self:flex-start;
  margin:0;
}

.specialty-index{
  margin-inline:0;
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(0.65rem,1.5vw,1rem);
  max-width:var(--rt-concerns-rail-max);
  padding:0;
  --concern-icon-size:0.95em;
  --concern-title-gap:0.55rem;
  /* Match title text start: icon box + gap */
  --concern-body-indent:calc(1.5rem + var(--concern-title-gap,0.55rem));
}

body.rt-page-specialties .specialty-entry{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:clamp(0.85rem,2vw,1.25rem) 0;
  padding-left:0.35rem;
  border:none;
  background:transparent;
  box-sizing:border-box;
}

.specialty-entry-main{
  display:flex;
  flex-direction:column;
  min-width:0;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}

body.rt-page-specialties .specialty-entry-mist{
  max-width:none;
  background:transparent;
  border-radius:clamp(4px,0.8vw,8px);
  overflow:visible;
}

body.rt-page-specialties .specialty-entry-mist-panel,
body.rt-page-specialties .specialty-entry-mist .specialty-associated{
  padding-left:var(--concern-body-indent);
  box-sizing:border-box;
}

body.rt-page-specialties .specialty-entry-title::after{
  margin-inline-start:var(--concern-body-indent);
  flex-basis:calc(100% - var(--concern-body-indent));
}

.specialty-entry-mist-panel{
  padding:clamp(0.45rem,1vw,0.65rem) 0 clamp(0.65rem,1.4vw,0.85rem);
  background:transparent;
  border-radius:0;
}

.specialty-entry-mist .specialty-associated{
  margin-top:0;
  padding:0 0 clamp(0.65rem,1.4vw,0.85rem);
  background:transparent;
  border-radius:0;
}

.specialty-entry-mist-panel .specialty-entry-desc{
  margin-bottom:clamp(0.75rem,1.6vw,1rem);
}

.specialty-entry-mist-panel .specialty-entry-help{
  margin-bottom:0;
}

.specialty-entry-main:focus-visible{
  outline:2px solid var(--teal-deep,#154d4c);
  outline-offset:4px;
}

.specialty-entry-title{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:var(--concern-title-gap,0.55rem);
  font-family:'Cormorant Garamond',serif;
  font-size:var(--rt-type-component-title,clamp(1.5rem,2.5vw,2rem));
  font-weight:600;
  font-style:italic;
  line-height:1.22;
  letter-spacing:0.02em;
  margin:0 0 0;
  color:var(--teal-deep,#154d4c);
  min-width:0;
  transition:color 0.22s ease;
}

.specialty-entry-icon.index-hook-icon{
  width:var(--concern-icon-size,var(--rt-icon-title-box,0.95em));
  height:var(--concern-icon-size,var(--rt-icon-title-box,0.95em));
  margin-top:var(--rt-icon-title-nudge,0.16em);
  color:var(--teal-deep,#154d4c);
  overflow:visible;
  transition:background 0.22s ease,color 0.22s ease;
}

.specialty-entry-main:hover .specialty-entry-icon,
.specialty-entry-main:focus-visible .specialty-entry-icon{
  background:transparent;
  color:var(--brand-accent,#1a6560);
}

.specialty-entry-title::after{
  content:'';
  flex-basis:100%;
  height:1px;
  margin-top:0.18rem;
  background:var(--teal-deep,#154d4c);
  opacity:0.22;
  transition:background-color 0.22s ease,opacity 0.22s ease;
}

.specialty-entry-main:hover .specialty-entry-title::after,
.specialty-entry-main:focus-visible .specialty-entry-title::after{
  background:var(--brand-accent,#1a6560);
  opacity:1;
}

.specialty-entry-title-text{
  flex:0 1 auto;
  min-width:0;
  text-wrap:balance;
  transition:
    color 0.22s ease,
    letter-spacing 0.22s ease;
}

.specialty-entry-chevron{
  flex:none;
  width:0.55em;
  height:0.55em;
  margin-top:calc(var(--rt-icon-title-nudge,0.16em) + 0.22em);
  color:var(--teal-deep,#154d4c);
  opacity:0.35;
  transition:
    color 0.22s ease,
    opacity 0.22s ease,
    transform 0.22s ease;
  pointer-events:none;
}

.specialty-entry-main:hover .specialty-entry-title-text,
.specialty-entry-main:focus-visible .specialty-entry-title-text{
  color:var(--brand-accent,#1a6560);
  letter-spacing:0.035em;
}

.specialty-entry-main:hover .specialty-entry-chevron,
.specialty-entry-main:focus-visible .specialty-entry-chevron{
  color:var(--gold-paper,#D28936);
  opacity:1;
  transform:translateX(0.18em);
}

.specialty-entry-desc{
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-body,0.875rem);
  font-weight:300;
  font-style:normal;
  letter-spacing:normal;
  line-height:1.55;
  color:rgba(38,28,22,0.52);
  margin:0 0 clamp(0.65rem,1.4vw,0.9rem);
  max-width:none;
  text-wrap:pretty;
}

.specialty-entry-help{
  margin:0.35rem 0 0;
  padding-top:0.65rem;
  max-width:none;
  border-top:1px solid rgba(21,77,76,0.08);
}

.specialty-entry-help-label{
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-eyebrow);
  font-weight:400;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(38,28,22,0.44);
  margin:0 0 0.4rem;
}

.specialty-entry-help-line{
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-body,0.875rem);
  font-weight:300;
  line-height:1.65;
  letter-spacing:0.015em;
  color:rgba(38,28,22,0.62);
  margin:0;
  text-wrap:pretty;
}

.specialty-associated{
  margin:0;
  max-width:none;
}

.specialty-associated-label{
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-meta);
  font-weight:400;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:rgba(38,28,22,0.36);
  margin:0 0 0.4rem;
}

.specialty-associated-tags{
  display:flex;
  flex-wrap:wrap;
  gap:0.4rem 0.85rem;
  align-items:baseline;
}

/* Keyword tag buttons — filter by keyword */
button.specialty-tag,
.specialty-tag{
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-meta);
  font-weight:300;
  line-height:1.45;
  letter-spacing:0.02em;
  color:rgba(38,28,22,0.36);
  display:inline;
  padding:0;
  margin:0;
  background:none;
  border:none;
  border-radius:0;
  box-shadow:none;
  text-decoration:none;
  cursor:pointer;
  transition:color 0.22s ease;
}

button.specialty-tag:hover,
button.specialty-tag:focus-visible{
  color:var(--brand-accent,#1a6560);
}

button.specialty-tag:focus-visible{
  outline:2px solid var(--teal-vivid,#1b9baf);
  outline-offset:3px;
}

.specialty-tag.context-item--filter-hit{
  font-weight:400;
  color:var(--teal-deep,#154d4c);
}

/* Filtered states */
.specialty-index.is-filtered .specialty-entry.filtered-out{
  display:none;
}

.specialty-index.is-filtered .specialty-entry.filtered-match .specialty-tag:not(.context-item--filter-hit){
  opacity:0.38;
}

.specialty-filter-empty{
  margin:clamp(0.75rem,1.5vw,1rem) 0 0;
  max-width:var(--rt-concerns-rail-max);
  padding:clamp(1.15rem,2.2vw,1.5rem) 0;
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-body,0.875rem);
  font-weight:400;
  line-height:1.65;
  color:rgba(38,28,22,0.68);
  text-wrap:pretty;
}

.specialty-filter-empty[hidden]{
  display:none;
}

.specialty-filter-empty a{
  color:var(--brand-accent,#1a6560);
  text-decoration:underline;
  text-underline-offset:0.18em;
}

.specialty-filter-empty a:hover{
  color:var(--teal-deep,#154d4c);
}

.specialty-filter-empty-reset{
  font:inherit;
  color:var(--brand-accent,#1a6560);
  background:none;
  border:none;
  padding:0;
  margin:0;
  text-decoration:underline;
  text-underline-offset:0.18em;
  cursor:pointer;
}

.specialty-filter-empty-reset:hover,
.specialty-filter-empty-reset:focus-visible{
  color:var(--teal-deep,#154d4c);
}

.specialty-filter-empty-reset:focus-visible{
  outline:2px solid var(--teal-deep,#154d4c);
  outline-offset:2px;
}

/* Bridge to approaches */
.specialty-approach-bridge{
  margin:clamp(2.5rem,5vw,3.5rem) 0 0;
  max-width:min(30rem,100%);
  padding:clamp(1.75rem,3.5vw,2.25rem) 0 0;
  border-top:1px solid rgba(21,77,76,0.1);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.7rem;
}

.specialty-approach-bridge-lead{
  font-family:'Cormorant Garamond',serif;
  font-size:var(--rt-type-component-title,clamp(1.5rem,2.5vw,2rem));
  font-weight:600;
  font-style:italic;
  line-height:1.28;
  letter-spacing:0.02em;
  color:var(--teal-deep,#154d4c);
  margin:0;
  max-width:min(42ch,100%);
  text-wrap:pretty;
}

.specialty-approach-bridge-btn{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  font-family:'DM Sans',sans-serif;
  font-size:var(--rt-type-sans-meta);
  font-weight:500;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--teal-deep,#154d4c);
  border-bottom:1px solid color-mix(in srgb,var(--teal-deep,#154d4c) 45%,transparent);
  padding:0.15em 0;
  transition:color 0.2s ease,border-color 0.2s ease;
}

.specialty-approach-bridge-btn:hover,
.specialty-approach-bridge-btn:focus-visible{
  color:var(--brand-accent,#1a6560);
  border-bottom-color:var(--gold-paper,#D28936);
}

.specialty-approach-bridge-btn:focus-visible{
  outline:2px solid var(--teal-deep,#154d4c);
  outline-offset:3px;
}

.specialty-catchall{
  margin:1rem 0 0;
  max-width:none;
  padding-top:0.8rem;
  font-family:'Cormorant Garamond',serif;
  font-size:1rem;
  font-weight:400;
  line-height:1.5;
  color:rgba(38,28,22,0.68);
  text-wrap:pretty;
  border-top:1px solid rgba(21,77,76,0.12);
}

.specialty-index.is-filter-empty ~ .specialty-approach-bridge{
  opacity:0.55;
}

.specialty-catchall a{
  color:var(--brand-accent,#1a6560);
  text-decoration:underline;
  text-underline-offset:0.18em;
}

.specialty-catchall a:hover{
  color:var(--teal-deep,#154d4c);
}

@media (max-width:768px){
  body.rt-page-specialties{
    --rt-concerns-content-gutter:max(1.75rem,calc(env(safe-area-inset-left,0px) + 1.35rem));
    --rt-concerns-content-gutter-end:max(1.75rem,calc(env(safe-area-inset-right,0px) + 1.35rem));
  }

  .specialty-keyword-bar{
    margin:0 0 clamp(1.15rem,2.5vw,1.65rem);
  }
}

@media (max-width:640px){
  .specialty-keyword-bar .tag-filter-select{
    font-size:0.95rem;
    min-height:48px;
    padding:0.7rem 2.5rem 0.7rem 0.95rem;
  }
}

/* Scroll reveal — concern list (whole entry, title included) */
.specialty-index .specialty-entry.reveal{
  transform:translateY(20px);
  transition:opacity 0.65s ease,transform 0.65s ease;
}

.specialty-index .specialty-entry.reveal.visible{
  transform:translateY(0);
}

.specialty-keyword-bar.reveal,
.specialty-approach-bridge.reveal,
.specialty-catchall.reveal,
.specialty-filter-empty.reveal{
  transform:translateY(16px);
  transition:opacity 0.6s ease,transform 0.6s ease;
}

@media (prefers-reduced-motion:reduce){
  .specialty-index .specialty-entry.reveal,
  .specialty-keyword-bar.reveal,
  .specialty-approach-bridge.reveal,
  .specialty-catchall.reveal,
  .specialty-filter-empty.reveal{
    transform:none;
    transition:none;
  }
}
