/* Shared interaction language for RankBuilder's public pages, not demo sites. */
.rb-rebuild {
  --interaction-surface: #eff8f2;
  --interaction-border: #97caae;
  --interaction-shadow: 0 16px 38px #173c2915;
  --interaction-ring: 0 0 0 4px #03c75a16;
  --interaction-ease: cubic-bezier(.2,.7,.2,1);
}

/* Navigation and text links keep their positions while gaining emphasis. */
.rb-rebuild .main-nav > a:not(.nav-contact) { position: relative; }
.rb-rebuild .main-nav > a:not(.nav-contact)::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -7px;
  height: 2px; border-radius: 2px; background: var(--brand);
  transform: scaleX(0); transform-origin: left; transition: transform .25s var(--interaction-ease);
}
.rb-rebuild .main-nav > a[aria-current]:not(.nav-contact)::after,
.rb-rebuild .main-nav > a:not(.nav-contact):focus-visible::after { transform: scaleX(1); }
.rb-rebuild .menu-button { border-radius: 50%; transition: background .2s, box-shadow .2s; }
.rb-rebuild .menu-button:focus-visible { box-shadow: var(--interaction-ring); }
.rb-rebuild .menu-button:active { background: var(--interaction-surface); }
.rb-rebuild :is(.brand, .footer-identity>a) { transition: filter .25s; }
.rb-rebuild :is(.text-link, .rb-work-demo-link, .rb-case-back, .rb-case-brief,
  .rb-work-caption h3>a, .rb-case-screen-caption h3>a, .rb-opening-foot>a,
  .rb-consultation__links a, .footer-links a) {
  transition: color .25s, border-color .25s, text-decoration-color .25s;
  text-underline-offset: 6px; text-decoration-thickness: 1px;
}
.rb-rebuild :is(.text-link, .rb-work-demo-link, .rb-case-brief, .rb-opening-foot>a)>span[aria-hidden],
.rb-rebuild .rb-case-screen-caption h3>a>span[aria-hidden],
.rb-rebuild .rb-work-cover-top>span:last-child {
  display: inline-block; transition: transform .3s var(--interaction-ease);
}
.rb-rebuild :is(.text-link, .rb-work-demo-link, .rb-case-back, .rb-case-brief,
  .rb-work-caption h3>a, .rb-case-screen-caption h3>a, .rb-opening-foot>a):focus-visible {
  color: var(--accent); text-decoration: underline;
}
.rb-rebuild .footer-links a:focus-visible { color: #8aebb3; outline-color: #8aebb3; }

/* Buttons retain their established colors and disabled/selected states. */
.rb-rebuild :is(.button, .nav-contact, .rb-work-empty button, .pricing-grid article>a) {
  transition: background .25s, color .25s, border-color .25s,
    box-shadow .3s, transform .3s var(--interaction-ease);
}
.rb-rebuild :is(.button, .pricing-grid article>a)>span[aria-hidden] {
  display: inline-block; transition: transform .3s var(--interaction-ease);
}
.rb-rebuild :is(.button, .nav-contact, .rb-work-empty button, .pricing-grid article>a):focus-visible {
  box-shadow: var(--interaction-ring), 0 8px 22px #173c2917;
}
.rb-rebuild .rb-work-filters button {
  transition: color .2s, background .2s, border-color .2s, box-shadow .2s;
}
.rb-rebuild .rb-work-filters button:focus-visible { box-shadow: var(--interaction-ring); }

/* Each portfolio destination responds independently: cover, title, or live demo. */
.rb-rebuild :is(.rb-work-cover, .rb-case-screen-image, .rb-case-next a, .project-image) {
  transition: box-shadow .4s var(--interaction-ease), transform .4s var(--interaction-ease), border-color .3s;
}
.rb-rebuild .rb-case-stage .shell>a { display: block; border-radius: 10px; }
.rb-rebuild .rb-case-stage .rb-work-browser { transition: box-shadow .4s, transform .4s; }
.rb-rebuild .rb-case-next a { border-radius: 12px; }
.rb-rebuild .rb-case-next a>span { transition: color .25s; }
.rb-rebuild :is(.rb-work-cover, .rb-case-screen-image, .rb-case-next a):focus-visible {
  box-shadow: var(--interaction-shadow); outline: 3px solid var(--accent); outline-offset: 5px;
}
.rb-rebuild .rb-case-stage .shell>a:focus-visible .rb-work-browser { box-shadow: var(--interaction-shadow); }

/* Prices and informational rows react without pretending the entire row is a link. */
.rb-rebuild .pricing-grid article {
  transition: transform .35s var(--interaction-ease), border-color .3s, box-shadow .35s;
}
.rb-rebuild .pricing-grid article:focus-within {
  border-color: var(--interaction-border); box-shadow: var(--interaction-shadow);
}
.rb-rebuild :is(.production-service-grid article, .process-timeline article,
  .deliverable-grid article, .keyword-map>div, .comparison-row:not(.comparison-head),
  .rb-case-points article, .rb-performance-chart, .rb-cost-channel, .rb-flow-step) {
  transition: background .3s, border-color .3s, box-shadow .3s;
}

/* Accordions have a visible affordance; existing +/- open states are preserved. */
.rb-rebuild main details>summary {
  transition: background .25s, color .25s, box-shadow .25s;
}
.rb-rebuild main details>summary:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 4px;
  box-shadow: var(--interaction-ring);
}

/* Form feedback never moves the field or hides its validation state. */
.rb-rebuild .landing-inquiry-form .landing-service-option {
  transition: background .25s, border-color .25s, box-shadow .25s;
}
.rb-rebuild .landing-inquiry-form .landing-service-option:has(input:checked) {
  background: #edf8f1; border-color: var(--accent); box-shadow: inset 3px 0 var(--brand);
}
.rb-rebuild .landing-inquiry-form .landing-service-option:has(input:focus-visible) {
  box-shadow: inset 3px 0 var(--brand), var(--interaction-ring);
}
.rb-rebuild .landing-inquiry-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]),
.rb-rebuild .landing-inquiry-form :is(select, textarea), .rb-rebuild .rb-work-search input {
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.rb-rebuild .landing-inquiry-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]):focus-visible,
.rb-rebuild .landing-inquiry-form :is(select, textarea):focus-visible,
.rb-rebuild .rb-work-search input:focus-visible {
  border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px;
  box-shadow: var(--interaction-ring);
}
.rb-rebuild .landing-inquiry-form [aria-invalid=true]:focus-visible {
  outline-color: #b42318!important; box-shadow: 0 0 0 4px #b4231812!important;
}
.rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit] {
  transition: background .25s, border-color .25s, box-shadow .3s;
}
.rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]>span {
  transition: transform .3s var(--interaction-ease), box-shadow .3s;
}
.rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]:focus-visible {
  box-shadow: var(--interaction-ring), 0 8px 22px #173c2920;
}
.rb-rebuild .rb-contact-dock__item:focus-visible { box-shadow: 0 0 0 4px #fff, 0 9px 26px #173c2930; }

@media (hover:hover) and (pointer:fine) {
  .rb-rebuild .menu-button:hover { background: var(--interaction-surface); }
  .rb-rebuild .main-nav>a:not(.nav-contact):hover::after { transform: scaleX(1); }
  .rb-rebuild :is(.brand, .footer-identity>a):hover { filter: drop-shadow(0 3px 7px #03c75a22); }
  .rb-rebuild :is(.text-link, .rb-work-demo-link, .rb-case-back, .rb-case-brief,
    .rb-work-caption h3>a, .rb-case-screen-caption h3>a, .rb-opening-foot>a):hover {
    color: var(--accent); border-color: var(--accent); text-decoration: underline;
  }
  .rb-rebuild :is(.text-link, .rb-work-demo-link, .rb-opening-foot>a):hover>span[aria-hidden],
  .rb-rebuild .rb-case-screen-caption h3>a:hover>span[aria-hidden],
  .rb-rebuild .rb-work-cover:hover .rb-work-cover-top>span:last-child { transform: translate(3px,-3px); }
  .rb-rebuild .rb-case-brief:hover>span[aria-hidden] { transform: translateY(3px); }
  .rb-rebuild .footer-links a:hover { color: #8aebb3; text-decoration: underline; }
  .rb-rebuild :is(.button, .nav-contact, .rb-work-empty button):not(:disabled):not([aria-disabled=true]):hover {
    transform: translateY(-2px); box-shadow: 0 10px 26px #173c2920;
  }
  .rb-rebuild :is(.button, .pricing-grid article>a):not(:disabled):not([aria-disabled=true]):hover>span[aria-hidden] {
    transform: translate(3px,-3px);
  }
  .rb-rebuild .rb-work-filters button[aria-pressed=false]:hover {
    background: var(--interaction-surface); border-color: var(--interaction-border); color: var(--accent);
    box-shadow: 0 4px 12px #173c290a;
  }
  .rb-rebuild .rb-work-cover:hover { box-shadow: 0 20px 45px #173c2920; }
  .rb-rebuild .rb-case-screen-image:hover { transform: translateY(-4px); box-shadow: var(--interaction-shadow); }
  .rb-rebuild .rb-case-stage .shell>a:hover .rb-work-browser { transform: translateY(-4px); box-shadow: 0 22px 50px #173c2920; }
  .rb-rebuild .rb-case-next a:hover { transform: translateY(-4px); box-shadow: var(--interaction-shadow); }
  .rb-rebuild .rb-case-next a:hover>span { color: var(--accent); }
  .rb-rebuild .project-card:hover .project-image { box-shadow: var(--interaction-shadow); }
  .rb-rebuild .pricing-grid article:hover {
    transform: translateY(-6px); border-color: var(--interaction-border); box-shadow: var(--interaction-shadow);
  }
  .rb-rebuild .pricing-grid article>a:hover { box-shadow: 0 8px 20px #173c291a; }
  .rb-rebuild :is(.production-service-grid article, .process-timeline article,
    .keyword-map>div, .comparison-row:not(.comparison-head), .rb-case-points article):hover {
    background: #edf7f080; border-color: var(--interaction-border);
  }
  .rb-rebuild .deliverable-grid article:hover { border-color: #70d999; background: #ffffff05; }
  .rb-rebuild :is(.rb-performance-chart, .rb-cost-channel):hover {
    border-color: var(--interaction-border); box-shadow: 0 8px 24px #173c2910;
  }
  .rb-rebuild .rb-flow-step:hover { background: #edf8f1; box-shadow: 0 0 0 10px #edf8f1; }
  .rb-rebuild main details>summary:hover { color: var(--accent); background: #edf7f075; }
  .rb-rebuild .landing-inquiry-form .landing-service-option:not(:has(input:checked)):hover {
    background: #f5faf7; border-color: var(--interaction-border); box-shadow: 0 5px 15px #173c290a;
  }
  .rb-rebuild .landing-inquiry-form .form-agree:hover { color: var(--accent); }
  .rb-rebuild .landing-inquiry-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not(:disabled):not(:read-only):hover,
  .rb-rebuild .landing-inquiry-form :is(select, textarea):not(:disabled):hover,
  .rb-rebuild .rb-work-search input:hover { border-color: #7baa8e; }
  .rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]:not(:disabled):hover {
    transform: none; box-shadow: 0 10px 26px #173c292a;
  }
  .rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]:not(:disabled):hover>span {
    transform: rotate(-7deg); box-shadow: 0 0 0 4px #03c75a16;
  }
}

/* Touch receives an immediate pressed state, without sticky hover movement. */
.rb-rebuild :is(.button, .rb-work-filters button, .rb-work-empty button,
  .rb-contact-dock__item, .pricing-grid article>a):not(:disabled):not([aria-disabled=true]):active {
  box-shadow: inset 0 0 0 2px #173c2920;
}
.rb-rebuild :is(.button, .rb-work-empty button):disabled,
.rb-rebuild :is(.button, .rb-work-empty button)[aria-disabled=true],
.rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]:disabled {
  transform: none; box-shadow: none;
}
.rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]:disabled:hover {
  background: var(--action); border-color: var(--action);
}
@media (hover:none), (pointer:coarse) {
  .rb-rebuild .rb-work-cover:hover .rb-work-browser,
  .rb-rebuild .rb-case-screen-image:hover,
  .rb-rebuild .project-card:hover .project-image img,
  .rb-rebuild .rb-showcase-item:hover img,
  .rb-rebuild .button:hover { transform: none; }
  .rb-rebuild .landing-inquiry-form .landing-service-option:not(:has(input:checked)):hover {
    background: transparent; border-color: transparent; box-shadow: none;
  }
}
@media (max-width:1100px) {
  .rb-rebuild .rb-contact-dock__item:focus-visible { box-shadow: inset 0 0 0 3px #202727; }
}
@media (prefers-reduced-motion:reduce) {
  .rb-rebuild :is(.main-nav>a, .button, .nav-contact, .rb-work-cover, .rb-work-filters button,
    .rb-work-empty button, .rb-case-screen-image, .rb-case-next a, .pricing-grid article,
    .pricing-grid article>a, .rb-case-stage .rb-work-browser, .rb-contact-dock__item) {
    transition: none!important; transform: none!important;
  }
  .rb-rebuild :is(.button, .text-link, .rb-work-demo-link, .rb-case-brief,
    .rb-opening-foot>a, .pricing-grid article>a)>span[aria-hidden],
  .rb-rebuild .rb-work-cover-top>span:last-child,
  .rb-rebuild .rb-case-screen-caption h3>a>span[aria-hidden],
  .rb-rebuild .landing-inquiry-form .landing-inquiry-fields>button[type=submit]>span,
  .rb-rebuild .project-card:hover .project-image img { transform: none!important; transition: none!important; }
  .rb-rebuild .main-nav>a::after { transition: none!important; }
}
